package pe.edu.upc.matrix.servlet;

import java.io.IOException;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import pe.edu.upc.matrix.excepcion.EExcepcionDAO;
import pe.edu.upc.matrix.excepcion.EExcepcionLogin;
import pe.edu.upc.matrix.modelo.MPersonaObtenida;
import pe.edu.upc.matrix.negocio.NUsuario;
import pe.edu.upc.matrix.util.UConstanteWeb;
import pe.edu.upc.matrix.util.UUtilitario;

/**
 * Servlet implementation class SGestionarUsuario
 */
@WebServlet("/SGestionarUsuario")
public class SGestionarUsuario extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SGestionarUsuario() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		String resultado = "";
		
		String tipoPersona = (String)request.getParameter("idTipoPersona");
		String noPersona = (String)request.getParameter("noPersona");
		String noPaterno = (String)request.getParameter("noPaterno");
		String noMaterno = (String)request.getParameter("noMaterno");
		String sexo = (String)request.getParameter("abSexo");
		String tipoDocumento = (String)request.getParameter("idTipoDocumento");
		String nuDocumento = (String)request.getParameter("nuDocumento");
		String noCorreo = (String)request.getParameter("noCorreo");
		String nuCelular = (String)request.getParameter("nuCelular");
		String fechaNacimiento = (String)request.getParameter("feNacimiento");
		String usuario = (String)request.getParameter("usuario");
		String contrasena = (String)request.getParameter("contrasena");
		String recontrasena = (String)request.getParameter("recontrasena");
		
		MPersonaObtenida mPersonaObtenida = new MPersonaObtenida(tipoPersona, noPersona, noPaterno, noMaterno, sexo, tipoDocumento, nuDocumento, noCorreo, nuCelular, fechaNacimiento, usuario, contrasena, recontrasena);
		System.out.println(tipoPersona + "=====" + noPersona + "=====" + noPaterno + "=====" + noMaterno + "=====" + sexo + "=====" + tipoDocumento + "=====" + nuDocumento + "=====" + noCorreo + "=====" + nuCelular + "=====" + fechaNacimiento + "=====" + usuario + "=====" + contrasena + "=====" + recontrasena);
		try {
			resultado = UUtilitario.validarCamposObligatoriosDeLaPersona(mPersonaObtenida);
		} catch (EExcepcionDAO | EExcepcionLogin e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
		int idSexo;
		
		if(resultado!= null &&!resultado.equals("")){
			request.setAttribute("resultado", resultado);
		}else{
			int idTipoPersona = Integer.parseInt(tipoPersona);
			int idTipoDocumento = Integer.parseInt(tipoDocumento);
			Date feNacimiento = UUtilitario.convertirFechaDate(fechaNacimiento);
			
			if(sexo.equals("M"))
				idSexo = UConstanteWeb.ID_SEXO_MASCULINO;
			else
				idSexo = UConstanteWeb.ID_SEXO_FEMENINO;
			
			NUsuario nUsuario = new NUsuario();
			
			try {
				request.setAttribute("resultado", "El usuario se registro correctamente.");
				request.setAttribute("usuario", nUsuario.RegistrarUsuario(idTipoPersona, noPersona, noPaterno, noMaterno, idSexo, idTipoDocumento, nuDocumento, noCorreo, nuCelular, feNacimiento, usuario, contrasena));
				
			} catch (EExcepcionDAO e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		

		request.setAttribute("personaObtenida", mPersonaObtenida);
		RequestDispatcher rd = request.getRequestDispatcher("micuenta.jsp?opcion=agregarusuario");
		rd.forward(request, response);
		
	}

}
